package ventanas;

import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.forms.layout.ColumnSpec;
import com.jgoodies.forms.layout.RowSpec;
import com.jgoodies.forms.factories.FormFactory;
import controladores.ControladorVentanaCambiarEstadoTurnos;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JLabel;
import javax.swing.JComboBox;
import javax.swing.JButton;

public class VentanaCambiarEstadoTurnos extends JFrame {
	private static final long serialVersionUID = 1L;
	private JPanel contentPane;
	private final JLabel lblNewLabel = new JLabel("Cambiar Estado de Turnos del Dia");
	private final JLabel lblFechaDer = new JLabel("Fecha: ");
	private final JLabel lblFechaIzq = new JLabel("New label");
	private final JLabel lblEstado = new JLabel("Estado:");
	private final JComboBox<String> comboEstados = new JComboBox<String>();
	private final JButton btnAsignarTurnos = new JButton("Asignar Estado a Turnos");
	private final JButton btnCancelar = new JButton("Cancelar");
	private VentanaAgenda v;
	private ControladorVentanaCambiarEstadoTurnos controlador;
	
	public VentanaCambiarEstadoTurnos(VentanaAgenda ventana) {
		setTitle("Estado del Turno");
		this.v = ventana;
		this.controlador = new ControladorVentanaCambiarEstadoTurnos(this);
		this.initGUI();
		this.cargarEstadosAlCombo();
		this.cargarDatosPrevios();
	}
	
	private void initGUI() {
		this.setVisible(true);
		setBounds(100, 100, 428, 302);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(new FormLayout(new ColumnSpec[] {
				ColumnSpec.decode("max(51dlu;default)"),
				FormFactory.RELATED_GAP_COLSPEC,
				ColumnSpec.decode("max(159dlu;default):grow"),},
			new RowSpec[] {
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				RowSpec.decode("max(25dlu;default)"),
				FormFactory.RELATED_GAP_ROWSPEC,
				RowSpec.decode("max(39dlu;default)"),
				FormFactory.RELATED_GAP_ROWSPEC,
				RowSpec.decode("max(42dlu;default)"),}));
		contentPane.add(lblNewLabel, "1, 1, 3, 1, center, default");
		contentPane.add(lblFechaDer, "1, 5, center, default");
		contentPane.add(lblFechaIzq, "3, 5, center, default");
		contentPane.add(lblEstado, "1, 7, center, default");
		contentPane.add(comboEstados, "3, 7");
		contentPane.add(btnCancelar, "1, 9");
		contentPane.add(btnAsignarTurnos, "3, 9");
		btnAsignarTurnos.addActionListener(controlador);
		btnCancelar.addActionListener(controlador);
		this.setLocationRelativeTo(null);
		this.pack();
	}
	
	private void cargarEstadosAlCombo(){
		DefaultComboBoxModel<String> modelo = new DefaultComboBoxModel<>();
		modelo.addElement("Disponible");
		modelo.addElement("Asignado");
		modelo.addElement("Cancelado");
		modelo.addElement("Concretado");
		modelo.addElement("Ausente");
		comboEstados.setModel(modelo);
		comboEstados.revalidate();
	}
	
	private void cargarDatosPrevios(){
		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
		Date fecha = v.getCalendario().getDate();
		lblFechaIzq.setText(sdf.format(fecha));
	}
	
	//getters y setters
	public JLabel getLblFechaDer() {
		return lblFechaDer;
	}
	
	public JComboBox<String> getComboEstados() {
		return comboEstados;
	}
	
	public JButton getBtnAsignarTurnos() {
		return btnAsignarTurnos;
	}
	
	public JButton getBtnCancelar() {
		return btnCancelar;
	}
	
	public VentanaAgenda getV() {
		return v;
	}
}
